package com.yitao.cms.dto.product;

import com.skipper.base.dto.BaseDto;
import com.yitao.client.dto.product.ProductImgDto;
import com.yitao.client.dto.product.ProductSkuDto;
import com.yitao.cms.utils.NumberUtil;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Author: wwl
 * @Date: 2019/11/8 15:03
 * @Description:
 */
public class ProductAddDto extends BaseDto {
    @ApiModelProperty("id")
    private Long id;
    private Integer productType;
    @ApiModelProperty("商品code")
    private String productCode;
    @ApiModelProperty("货号 即为商品的供货商的商品编号")
    private String articleNumber;
    @ApiModelProperty("数据来源:1.商城商品，2.如花商品，3.买手版商品，100.MACYS")
    private Integer businessType;
    @ApiModelProperty("商品名称")
    private String productName;
    @ApiModelProperty("商品别名")
    private String productEnName;
    @ApiModelProperty("商品简述")
    private String productDescription;
    @ApiModelProperty("品牌code")
    private String brandCode;
    @ApiModelProperty("品牌名称")
    private String brandName;
    @ApiModelProperty("品牌别名")
    private String brandEnName;
    @ApiModelProperty("基础分类id")
    private Long categoryId;
    @ApiModelProperty("运营分类id")
    private List<Long> operationCategoryIds;
    @ApiModelProperty("基础分类名称")
    private String categoryName;
    @ApiModelProperty("产品产地Id")
    private Long builtPlaceId;
    @ApiModelProperty("产地图片Url")
    private String builtPlaceUrl;
    @ApiModelProperty("产品产地")
    private String builtPlaceName;
    @ApiModelProperty("标价币种")
    private String currency;
    @ApiModelProperty("市场价")
    private Long markerPrice;
    @ApiModelProperty("市场价(元)")
    private Double markerPriceYuan;
    @ApiModelProperty("售价")
    private Long salesPrice;
    @ApiModelProperty("售价(元)")
    private Double salesPriceYuan;
    @ApiModelProperty("批发价")
    private Long wholesalePrice;
    @ApiModelProperty("活动价")
    private Long activePrice;
    @ApiModelProperty("定价(用于不参与优惠活动 定价商品)")
    private Long fixPrice;
    @ApiModelProperty("折扣率")
    private BigDecimal discount;
    @ApiModelProperty("售价类型 1:正常销售")
    private Integer salesPriceType;
    @ApiModelProperty("所属门店")
    private Long shopId;
    @ApiModelProperty("商品排序值")
    private Integer productSort=0;
    @ApiModelProperty("是否上架 false 否 true 是")
    private Boolean isSale;
    @ApiModelProperty("是否推荐 false：否 true：是")
    private Boolean isRecommend;
    @ApiModelProperty("是否被删除 false 否 true 是")
    private Boolean isDelete;
    @ApiModelProperty("商品销量")
    private Integer salesCount;
    @ApiModelProperty("商品sku集合，冗余字段")
    private String skuList;
    @ApiModelProperty("商品主图")
    private String productMainImgUrl;
    @ApiModelProperty("商品详情图片集合，冗余字段")
    private String productDetailImgList;
    @ApiModelProperty("商品关联的菜单资讯，冗余字段")
    private String messageMenuList;
    @ApiModelProperty("商品详情文字性描述")
    private String productDetail;
    @ApiModelProperty("创建人")
    private Long createBy;
    @ApiModelProperty("创建时间")
    private Date createTime;
    @ApiModelProperty("最后更新人")
    private Long lastUpdateBy;
    @ApiModelProperty("最后修改时间")
    private Date lastUpdateTime;
    @ApiModelProperty("分享描述")
    private String shareDesc;
    @ApiModelProperty("运费，适用于运费绑定商品")
    private Long freightFee;
    @ApiModelProperty("关联Url")
    private String relevantUrl;
    @ApiModelProperty("商品详情图集合")
    private List<ProductImgDto> productImgDtoList;
    @ApiModelProperty("商品轮播图集合")
    private List<ProductImgDto> productBannerImgDtoList;
    @ApiModelProperty("商品Sku信息集合")
    private List<ProductSkuDto> productSkuList;
    private String outId;
    @ApiModelProperty("商品外部条码(清关使用)")
    private String productOutsideBarcode;
    private Integer imageState;
    @ApiModelProperty("是否定时下架(0: 否， 1:是)")
    private Boolean istaskLowerShelf;
    @ApiModelProperty("下架时间")
    private Date lowerShelfTime;
    @ApiModelProperty("下架时间-前端展示")
    private String lowerShelfTimeStr;
    @ApiModelProperty("产品库存描述")
    private String productAssembleDesc;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Integer getProductType() {
        return productType;
    }

    public void setProductType(Integer productType) {
        this.productType = productType;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public String getArticleNumber() {
        return articleNumber;
    }

    public void setArticleNumber(String articleNumber) {
        this.articleNumber = articleNumber;
    }

    public Integer getBusinessType() {
        return businessType;
    }

    public void setBusinessType(Integer businessType) {
        this.businessType = businessType;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductEnName() {
        return productEnName;
    }

    public void setProductEnName(String productEnName) {
        this.productEnName = productEnName;
    }

    public String getProductDescription() {
        return productDescription;
    }

    public void setProductDescription(String productDescription) {
        this.productDescription = productDescription;
    }

    public String getBrandCode() {
        return brandCode;
    }

    public void setBrandCode(String brandCode) {
        this.brandCode = brandCode;
    }

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    public String getBrandEnName() {
        return brandEnName;
    }

    public void setBrandEnName(String brandEnName) {
        this.brandEnName = brandEnName;
    }

    public Long getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Long categoryId) {
        this.categoryId = categoryId;
    }

    public List<Long> getOperationCategoryIds() {
        return operationCategoryIds;
    }

    public void setOperationCategoryIds(List<Long> operationCategoryIds) {
        this.operationCategoryIds = operationCategoryIds;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public Long getBuiltPlaceId() {
        return builtPlaceId;
    }

    public void setBuiltPlaceId(Long builtPlaceId) {
        this.builtPlaceId = builtPlaceId;
    }

    public String getBuiltPlaceUrl() {
        return builtPlaceUrl;
    }

    public void setBuiltPlaceUrl(String builtPlaceUrl) {
        this.builtPlaceUrl = builtPlaceUrl;
    }

    public String getBuiltPlaceName() {
        return builtPlaceName;
    }

    public void setBuiltPlaceName(String builtPlaceName) {
        this.builtPlaceName = builtPlaceName;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public Long getMarkerPrice() {
        return NumberUtil.yuanToCent(markerPriceYuan);
    }

    public void setMarkerPrice(Long markerPrice) {
        this.markerPrice = markerPrice;
    }

    public Long getSalesPrice() {
        return NumberUtil.yuanToCent(salesPriceYuan);
    }

    public void setSalesPrice(Long salesPrice) {
        this.salesPrice = salesPrice;
    }

    public Long getWholesalePrice() {
        return wholesalePrice;
    }

    public void setWholesalePrice(Long wholesalePrice) {
        this.wholesalePrice = wholesalePrice;
    }

    public Long getActivePrice() {
        return activePrice;
    }

    public void setActivePrice(Long activePrice) {
        this.activePrice = activePrice;
    }

    public Long getFixPrice() {
        return fixPrice;
    }

    public void setFixPrice(Long fixPrice) {
        this.fixPrice = fixPrice;
    }

    public BigDecimal getDiscount() {
        return discount;
    }

    public void setDiscount(BigDecimal discount) {
        this.discount = discount;
    }

    public Integer getSalesPriceType() {
        return salesPriceType;
    }

    public void setSalesPriceType(Integer salesPriceType) {
        this.salesPriceType = salesPriceType;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public Integer getProductSort() {
        return productSort;
    }

    public void setProductSort(Integer productSort) {
        this.productSort = productSort;
    }

    public Boolean getSale() {
        return isSale;
    }

    public void setSale(Boolean sale) {
        isSale = sale;
    }

    public Boolean getRecommend() {
        return isRecommend;
    }

    public void setRecommend(Boolean recommend) {
        isRecommend = recommend;
    }

    public Boolean getDelete() {
        return isDelete;
    }

    public void setDelete(Boolean delete) {
        isDelete = delete;
    }

    public Integer getSalesCount() {
        return salesCount;
    }

    public void setSalesCount(Integer salesCount) {
        this.salesCount = salesCount;
    }

    public String getSkuList() {
        return skuList;
    }

    public void setSkuList(String skuList) {
        this.skuList = skuList;
    }

    public String getProductMainImgUrl() {
        return productMainImgUrl;
    }

    public void setProductMainImgUrl(String productMainImgUrl) {
        this.productMainImgUrl = productMainImgUrl;
    }

    public String getProductDetailImgList() {
        return productDetailImgList;
    }

    public void setProductDetailImgList(String productDetailImgList) {
        this.productDetailImgList = productDetailImgList;
    }

    public String getMessageMenuList() {
        return messageMenuList;
    }

    public void setMessageMenuList(String messageMenuList) {
        this.messageMenuList = messageMenuList;
    }

    public String getProductDetail() {
        return productDetail;
    }

    public void setProductDetail(String productDetail) {
        this.productDetail = productDetail;
    }

    public Long getCreateBy() {
        return createBy;
    }

    public void setCreateBy(Long createBy) {
        this.createBy = createBy;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Long getLastUpdateBy() {
        return lastUpdateBy;
    }

    public void setLastUpdateBy(Long lastUpdateBy) {
        this.lastUpdateBy = lastUpdateBy;
    }

    public Date getLastUpdateTime() {
        return lastUpdateTime;
    }

    public void setLastUpdateTime(Date lastUpdateTime) {
        this.lastUpdateTime = lastUpdateTime;
    }

    public String getShareDesc() {
        return shareDesc;
    }

    public void setShareDesc(String shareDesc) {
        this.shareDesc = shareDesc;
    }

    public Long getFreightFee() {
        return freightFee;
    }

    public void setFreightFee(Long freightFee) {
        this.freightFee = freightFee;
    }

    public String getRelevantUrl() {
        return relevantUrl;
    }

    public void setRelevantUrl(String relevantUrl) {
        this.relevantUrl = relevantUrl;
    }

    public List<ProductImgDto> getProductImgDtoList() {
        return productImgDtoList;
    }

    public void setProductImgDtoList(List<ProductImgDto> productImgDtoList) {
        this.productImgDtoList = productImgDtoList;
    }

    public List<ProductImgDto> getProductBannerImgDtoList() {
        return productBannerImgDtoList;
    }

    public void setProductBannerImgDtoList(List<ProductImgDto> productBannerImgDtoList) {
        this.productBannerImgDtoList = productBannerImgDtoList;
    }

    public List<ProductSkuDto> getProductSkuList() {
        return productSkuList;
    }

    public void setProductSkuList(List<ProductSkuDto> productSkuList) {
        this.productSkuList = productSkuList;
    }

    public String getOutId() {
        return outId;
    }

    public void setOutId(String outId) {
        this.outId = outId;
    }

    public Integer getImageState() {
        return imageState;
    }

    public void setImageState(Integer imageState) {
        this.imageState = imageState;
    }

    public Boolean getIstaskLowerShelf() {
        return istaskLowerShelf;
    }

    public void setIstaskLowerShelf(Boolean istaskLowerShelf) {
        this.istaskLowerShelf = istaskLowerShelf;
    }

    public Date getLowerShelfTime() {
        return lowerShelfTime;
    }

    public void setLowerShelfTime(Date lowerShelfTime) {
        this.lowerShelfTime = lowerShelfTime;
    }

    public String getLowerShelfTimeStr() {
        return lowerShelfTimeStr;
    }

    public void setLowerShelfTimeStr(String lowerShelfTimeStr) {
        this.lowerShelfTimeStr = lowerShelfTimeStr;
    }

    public Double getMarkerPriceYuan() {
        return NumberUtil.centToYuanForDouble(markerPrice);
    }

    public void setMarkerPriceYuan(Double markerPriceYuan) {
        this.markerPriceYuan = markerPriceYuan;
    }

    public Double getSalesPriceYuan() {
        return NumberUtil.centToYuanForDouble(salesPrice);
    }

    public void setSalesPriceYuan(Double salesPriceYuan) {
        this.salesPriceYuan = salesPriceYuan;
    }

    public String getProductOutsideBarcode() {
        return productOutsideBarcode;
    }

    public void setProductOutsideBarcode(String productOutsideBarcode) {
        this.productOutsideBarcode = productOutsideBarcode;
    }

    public String getProductAssembleDesc() {
        return productAssembleDesc;
    }

    public void setProductAssembleDesc(String productAssembleDesc) {
        this.productAssembleDesc = productAssembleDesc;
    }
}
